package cn.iocoder.yudao.module.system.controller.admin.ai.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

/**
 * AI智能选志愿推荐项 VO
 *
 * @author 芋道源码
 */
@Schema(description = "管理后台 - AI智能选志愿推荐项 VO")
@Data
public class AiVolunteerRecommendItemVO {

    // ========== 学校基础信息 ==========
    @Schema(description = "大学名称", example = "西安交通大学")
    private String universityName;

    @Schema(description = "原始学校名称", example = "西安交通大学")
    private String originUniversityName;

    @Schema(description = "招生代码", example = "2662")
    private String recruitCode;

    @Schema(description = "学校所在省份", example = "陕西")
    private String province;

    @Schema(description = "学校logo", example = "https://static-file.daxue.cn/images/西安交通大学.png")
    private String logo;

    @Schema(description = "学校唯一ID（school_uuid）", example = "305")
    private String universityId;

    @Schema(description = "掌上高考ID", example = "330")
    private Integer zsgkId;

    // ========== 学校属性 ==========
    @Schema(description = "学校性质", example = "公办")
    private String propertyName;

    @Schema(description = "学校类别", example = "综合")
    private String categoryName;

    @Schema(description = "学校标签（逗号分隔）", example = "985,211,双一流,保研资格,教育部直属,强基计划,C9联盟")
    private String tags;

    @Schema(description = "学校标签")
    private String tag;

    // ========== 推荐信息 ==========
    @Schema(description = "推荐类型：CHONG-冲，WEN-稳，BAO-保", example = "CHONG")
    private String type;

    @Schema(description = "志愿类型")
    private String volunteerType;

    @Schema(description = "录取概率（百分比）", example = "26")
    private Integer enrollProbability;

    // ========== 招生计划 ==========
    @Schema(description = "当年招生计划人数", example = "8")
    private Integer planNum;

    @Schema(description = "历史招生计划（JSON格式）", example = "[{\"2025\":45},{\"2024\":42}]")
    private String historyPlanNum;

    @Schema(description = "招生年份")
    private Integer enrollYear;

    @Schema(description = "实际招生数")
    private Integer enrollNum;

    // ========== 分数和位次 ==========
    @Schema(description = "最低录取分数", example = "0")
    private Integer minScore;

    @Schema(description = "最低录取位次", example = "0")
    private Integer minRanks;

    @Schema(description = "历史录取数据（JSON数组）", 
            example = "[{\"2025\":\"649,4351,8\"},{\"2024\":\"654,4083,8\"},{\"2023\":\"-,-,-\"}]")
    private String historyScore;

    @Schema(description = "等位分数据（JSON数组）", 
            example = "[{\"2025\":\"649\"},{\"2024\":\"650\"},{\"2023\":\"-\"}]")
    private String parityScore;

    @Schema(description = "是否在分数区间内", example = "true")
    private Boolean scoreSection;

    // ========== 专业组信息 ==========
    @Schema(description = "专业组代码", example = "006")
    private String universityMajorGroup;

    @Schema(description = "数据年份", example = "2025")
    private Integer year;

    @Schema(description = "专业数量", example = "1")
    private Integer majorNum;

    @Schema(description = "专业名称")
    private String majorName;

    @Schema(description = "选科要求", example = "不限")
    private String claim;

    @Schema(description = "专业备注")
    private String majorRemarks;

    @Schema(description = "专业代码")
    private String majorCode;

    @Schema(description = "专业代码列表（逗号分隔）", example = "33")
    private String majorCodes;

    @Schema(description = "最低分专业名称", 
            example = "经济学类（含经济学、经济统计学、财政学、金融学、金融工程、国际经济与贸易、贸易经济、电子商务）")
    private String lowestMajorName;

    // ========== 学习信息 ==========
    @Schema(description = "学费")
    private String studyCost;

    @Schema(description = "学制")
    private String studyYear;

    @Schema(description = "录取批次", example = "本科批")
    private String batch;

    @Schema(description = "学历层次", example = "本科")
    private String level;

    @Schema(description = "特殊计划")
    private String specialPlan;

    // ========== 学科和就业信息 ==========
    @Schema(description = "一级学科硕士点")
    private Integer masterOne;

    @Schema(description = "二级学科硕士点")
    private Integer masterTwo;

    @Schema(description = "一级学科博士点")
    private Integer doctorOne;

    @Schema(description = "二级学科博士点")
    private Integer doctorTwo;

    @Schema(description = "就业率")
    private String enrolmentRate;

    @Schema(description = "就业方向")
    private String careerDirection;

    // ========== 等级和排名 ==========
    @Schema(description = "本科水平")
    private String undergraduateLevel;

    @Schema(description = "研究生水平", example = "4.50")
    private Double postgraduateLevel;

    @Schema(description = "专业水平")
    private String majorLevel;

    @Schema(description = "软科综合排名", example = "10")
    private String rkzhRank;

    @Schema(description = "软科工作排名")
    private String rkgzRank;

    // ========== 其他信息 ==========
    @Schema(description = "是否VIP推荐", example = "false")
    private Boolean indexVip;

    @Schema(description = "下一年份", example = "2026")
    private Integer nextYear;

    @Schema(description = "下年选科要求")
    private String nextClaim;

    @Schema(description = "选科匹配检查")
    private String checkClaim;

    @Schema(description = "推荐记录ID", example = "2793347")
    private Long orcId;
}

